/// 对VtkMath的封装
#ifndef MEVTKMATH_H
#define MEVTKMATH_H

#include <Eigen/Core>

#include <vtkSmartPointer.h>
#include <vtkMatrix4x4.h>

class MeVtkMath
{
public:
    /// 按照弧度旋转
    static vtkSmartPointer<vtkMatrix4x4> rotateX(double angleInRadian);
    static vtkSmartPointer<vtkMatrix4x4> rotateY(double angleInRadian);
    static vtkSmartPointer<vtkMatrix4x4> rotateZ(double angleInRadian);
    static vtkSmartPointer<vtkMatrix4x4> rotateZYX(double xInRadian, double yInRadian, double zInRadian);
    static Eigen::Vector3d multiplyPoint(vtkMatrix4x4 *m, Eigen::Vector3d &p);
    static Eigen::Vector3d multiplyPoint(vtkMatrix4x4 *m, double p[3]);
};

#endif // MEVTKMATH_H
